Observations 56 R2 0.629 Adjusted R2 0.622 Residual Std. Error 92.800 (df = 54) F Statistic 91.700*** (df = 1; 54) ======================================================= Note: p<0.1; p<0.05; p<0.01  |
| #### 3.3.4 Violent crime and Property crime |
| As mentioned earlier, it is also possible to divide the crimes committed in Baltimore by ‘type’ of crime. A distinction is generally made between property crime and violent crime. In a property crime, a victim’s property is stolen or destroyed, without the use or threat of force against the victim. Property crimes include burglary and theft as well as vandalism and arson. In a violent crime, a victim is harmed by or threatened with violence. Violent crimes include rape and sexual assault, robbery, assault and murder. |
In order determine whether the crimes contained in our crime_data_with_area. We will use a data set once again provided by the Baltimore open data portal. This data set provides information about the crime codes used by the police to categorize crimes. We first import the data set. Then, we compare whether codes are well and truly similar, three crime codes are written with an extra blank space afterward. We correct that. Then, suing the left_join function, we add a new column to our crime_data_with_area data frame. We then wish to create data frames for both violent and property crime. The methodology is the same as we used for felonies and misdemeanors. |
| ```r |
| crimecode_data <- read.csv(file = here::here(“data/Balt_CRIME_CODES.csv”)) |
| unique(crime_data_with_areas\(CrimeCode) %in% unique(crimecode_data\)CODE) #We identify spelling errors |
| crimecode_data\(CODE[185] <- "8H" crimecode_data\)CODE[186] <- “8I” crimecode_data$CODE[187] <- “8J” |
| crime_data_with_areas <- crime_data_with_areas %>% left_join(crimecode_data[,c(1,8)],by=c(“CrimeCode”=“CODE”)) |
| unique(crime_data_with_areas\(VIO_PROP_CFS) which(is.na(crime_data_with_areas\)VIO_PROP_CFS)) #We ensure that we have no NAs |
| CrimePerCategory2PerArea <- crime_data_with_areas %>% group_by(Community,VIO_PROP_CFS) %>% summarize(RepartitionPerCategory2PerArea=n()) |
| sum(CrimePerCategory2PerArea$RepartitionPerCategory2PerArea) #Again, we check that we indeed have 349482 observations |
| CrimeCategory2Repartition <- CrimePerCategory2PerArea %>% group_by(VIO_PROP_CFS) %>% summarise(Repartition=sum(RepartitionPerCategory2PerArea)) |
| PropertyStats <- CrimePerCategory2PerArea %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| PropertyStats\(PropertyCrimePerCapitaPerArea <-((CrimePerCategory2PerArea%>% filter(VIO_PROP_CFS=="PROPERTY"))[[3]]/population_data\)tpop20)*1000 |
| PropertyStats[56,] <- list(“Unassigned – Jail”,“PROPERTY”,0,0) |
| ViolentStats <- CrimePerCategory2PerArea %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| ViolentStats\(ViolentCrimePerCapitaPerArea <-((CrimePerCategory2PerArea%>% filter(VIO_PROP_CFS=="VIOLENT"))[[3]]/population_data\)tpop20)*1000 |
| ViolentStats[56,] <- list(“Unassigned – Jail”,“PROPERTY”,0,0) |
| Community_data <- Community_data %>% left_join(ViolentStats[,c(1,4)],by=“Community”) %>% left_join(PropertyStats[,c(1,4)],by=“Community”) ``` |
| ### 3.4 Calculation of crime evolution |
| The idea is that we want to get information about how crime evolved. Here we could have done a loop, but could not yet find a way to properly do it. We have created a data set for each year. The results are interesting. If we compare how many observations we have in each crime-per year data sets, we see that we have ~40.000ish cases a year except from 2020 (which is due to COVID) and the year 2021 (which is not finished. We don’t make any datasets for the year 2013 and below, because we see that we have not many observations which date prior to the year 2013. The graph represent the monthly evolution of crime for each year. We see that there seems to be a sort of pattern and that, each year, crime increases mid-year before decreasing in December. |
| ```r |
| Crime_in_2021 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2021-01-01”) & CrimeDateTime <= as.Date(“2021-12-31”)) |
| Crime_in_2020 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2020-01-01”) & CrimeDateTime <= as.Date(“2020-12-31”)) |
| Crime_in_2019 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2019-01-01”) & CrimeDateTime <= as.Date(“2019-12-31”)) |
| Crime_in_2018 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2018-01-01”) & CrimeDateTime <= as.Date(“2018-12-31”)) |
| Crime_in_2017 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2017-01-01”) & CrimeDateTime <= as.Date(“2017-12-31”)) |
| Crime_in_2016 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2016-01-01”) & CrimeDateTime <= as.Date(“2016-12-31”)) |
| Crime_in_2015 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2015-01-01”) & CrimeDateTime <= as.Date(“2015-12-31”)) |
| Crime_in_2014 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2014-01-01”) & CrimeDateTime <= as.Date(“2014-12-31”)) |
| crime_data_with_areas %>% filter(CrimeDateTime < as.Date(“2014-01-01”)) #We see that we have very few (76) observations before 2014, thus we do not consider them |
| Crime_Monthly_evolution_map <- crime_data_with_areas %>% count(month=floor_date(CrimeDateTime,“month”)) %>% ggplot(aes(month,n))+geom_line()+ scale_x_date(limits = c(as.Date(“2014-01-01”), as.Date(“2021-08-31”))) #This enables us to see how crime evolve, month after month |
| Crime_Monthly_evolution_map ``` |
 |
| Next, we calculate the crime per capita for each year with the piping operator, grouping by community and summarize the rates. In the end we create the crime evolution data sets which is a combination of all the data. |
| ```r #_____ Calculations of the crime rates |
| CrimePerCapitaPerArea2021 <- Crime_in_2021 %>% group_by(Community) %>% summarize(CrimeFrequency21=n()) |
| CrimePerCapitaPerArea2021 <- mutate(CrimePerCapitaPerArea2021,CrimePer1000inhabitants21=((CrimePerCapitaPerArea2021\(CrimeFrequency21/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2021 <- rbind(CrimePerCapitaPerArea2021,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2020 <- Crime_in_2020 %>% group_by(Community) %>% summarize(CrimeFrequency20=n()) |
| CrimePerCapitaPerArea2020 <- mutate(CrimePerCapitaPerArea2020,CrimePer1000inhabitants20=((CrimePerCapitaPerArea2020\(CrimeFrequency20/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2020 <- rbind(CrimePerCapitaPerArea2020,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2019 <- Crime_in_2019 %>% group_by(Community) %>% summarize(CrimeFrequency19=n()) |
| CrimePerCapitaPerArea2019 <- mutate(CrimePerCapitaPerArea2019,CrimePer1000inhabitants19=((CrimePerCapitaPerArea2019\(CrimeFrequency19/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2019 <- rbind(CrimePerCapitaPerArea2019,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2018 <- Crime_in_2018 %>% group_by(Community) %>% summarize(CrimeFrequency18=n()) |
| CrimePerCapitaPerArea2018 <- mutate(CrimePerCapitaPerArea2018,CrimePer1000inhabitants18=((CrimePerCapitaPerArea2018\(CrimeFrequency18/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2018 <- rbind(CrimePerCapitaPerArea2018,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2017 <- Crime_in_2017 %>% group_by(Community) %>% summarize(CrimeFrequency17=n()) |
| CrimePerCapitaPerArea2017 <- mutate(CrimePerCapitaPerArea2017,CrimePer1000inhabitants17=((CrimePerCapitaPerArea2017\(CrimeFrequency17/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2017 <- rbind(CrimePerCapitaPerArea2017,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2016 <- Crime_in_2016 %>% group_by(Community) %>% summarize(CrimeFrequency16=n()) |
| CrimePerCapitaPerArea2016 <- mutate(CrimePerCapitaPerArea2016,CrimePer1000inhabitants16=((CrimePerCapitaPerArea2016\(CrimeFrequency16/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2016 <- rbind(CrimePerCapitaPerArea2016,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2015 <- Crime_in_2015 %>% group_by(Community) %>% summarize(CrimeFrequency15=n()) |
| CrimePerCapitaPerArea2015 <- mutate(CrimePerCapitaPerArea2015,CrimePer1000inhabitants15=((CrimePerCapitaPerArea2015\(CrimeFrequency15/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2015 <- rbind(CrimePerCapitaPerArea2015,list(“Unassigned – Jail”,0,0)) |
| CrimePerCapitaPerArea2014 <- Crime_in_2014 %>% group_by(Community) %>% summarize(CrimeFrequency14=n()) |
| CrimePerCapitaPerArea2014 <- mutate(CrimePerCapitaPerArea2014,CrimePer1000inhabitants14=((CrimePerCapitaPerArea2014\(CrimeFrequency14/population_data\)tpop20)*1000)) |
| CrimePerCapitaPerArea2014 <- rbind(CrimePerCapitaPerArea2014,list(“Unassigned – Jail”,0,0)) |
| crime_evolution <- CrimePerCapitaPerArea2021 %>% left_join(CrimePerCapitaPerArea2020,by=“Community”) %>% left_join(CrimePerCapitaPerArea2019,by=“Community”) %>% left_join(CrimePerCapitaPerArea2018,by=“Community”) %>% left_join(CrimePerCapitaPerArea2017,by=“Community”) %>% left_join(CrimePerCapitaPerArea2016,by=“Community”) %>% left_join(CrimePerCapitaPerArea2015,by=“Community”) %>% left_join(CrimePerCapitaPerArea2014,by=“Community”) |
| Community_data <- Community_data %>% left_join(crime_evolution,by=“Community”) ``` |
Another interesting way to visualise how crime evolved is by using an animated map. We can create animated maps using the tmap_animation function. Yet, in order to be in position to use it, we have to create a very particular tibble. In the case at hand, we want our animated map to display crime per capita evolution over 7 years (from 2014 to 2020, we get ride of 2021 as the year is not complete). Therefore, we must have 7 x 56 observations, one crime per capita value for each year, for each 56 area. Yet, the tibble becomes a bit more peculiar as for each observation, we have to add a in a separate column, a polygon (which is an S4 element) corresponding to the area in question. It is not possible to use a function like the rep function to replicate S4 elements, therefore, we had to do that manually. |
Once the tibble is built, we want to merge the data contained in it in a SpatialPolygonsDataFrame. We want to use the baltimore SpatialPolygonsDataFrame.However, as the tibble contains 392 observations, this will enlarge our our SpatialPolygonsDataFrame. As the baltimore object is also used for other purposes, we create an alias. Then, we merge the newly created tibble with the newly created alias, simply using left_join. We create the bbox object as well as an object called pb. The first element allows us to delimit the geographical area of interest and the second allows us to create custom classes. Finally, we crate a map using the tm_shape function. We animate the latter using tmap_animation. |
| ```r |
| anim_tibble <- tibble(Year=rep(2020:2014,56),Community=rep(Community_data$Community,each=7),CrimeRate=as.vector(t(crime_evolution[,-c(1,2,3,4,6,8,10,12,14,16)])),geometry=list( baltimore@polygons[[1]],baltimore@polygons[[1]],baltimore@polygons[[1]],baltimore@polygons[[1]],baltimore@polygons[[1]],baltimore@polygons[[1]],baltimore@polygons[[1]], baltimore@polygons[[2]],baltimore@polygons[[2]],baltimore@polygons[[2]],baltimore@polygons[[2]],baltimore@polygons[[2]],baltimore@polygons[[2]],baltimore@polygons[[2]], baltimore@polygons[[3]],baltimore@polygons[[3]],baltimore@polygons[[3]],baltimore@polygons[[3]],baltimore@polygons[[3]],baltimore@polygons[[3]],baltimore@polygons[[3]], baltimore@polygons[[4]],baltimore@polygons[[4]],baltimore@polygons[[4]],baltimore@polygons[[4]],baltimore@polygons[[4]],baltimore@polygons[[4]],baltimore@polygons[[4]], baltimore@polygons[[5]],baltimore@polygons[[5]],baltimore@polygons[[5]],baltimore@polygons[[5]],baltimore@polygons[[5]],baltimore@polygons[[5]],baltimore@polygons[[5]], baltimore@polygons[[6]],baltimore@polygons[[6]],baltimore@polygons[[6]],baltimore@polygons[[6]],baltimore@polygons[[6]],baltimore@polygons[[6]],baltimore@polygons[[6]], baltimore@polygons[[7]],baltimore@polygons[[7]],baltimore@polygons[[7]],baltimore@polygons[[7]],baltimore@polygons[[7]],baltimore@polygons[[7]],baltimore@polygons[[7]], baltimore@polygons[[8]],baltimore@polygons[[8]],baltimore@polygons[[8]],baltimore@polygons[[8]],baltimore@polygons[[8]],baltimore@polygons[[8]],baltimore@polygons[[8]], baltimore@polygons[[9]],baltimore@polygons[[9]],baltimore@polygons[[9]],baltimore@polygons[[9]],baltimore@polygons[[9]],baltimore@polygons[[9]],baltimore@polygons[[9]], baltimore@polygons[[10]],baltimore@polygons[[10]],baltimore@polygons[[10]],baltimore@polygons[[10]],baltimore@polygons[[10]],baltimore@polygons[[10]],baltimore@polygons[[10]], baltimore@polygons[[11]],baltimore@polygons[[11]],baltimore@polygons[[11]],baltimore@polygons[[11]],baltimore@polygons[[11]],baltimore@polygons[[11]],baltimore@polygons[[11]], baltimore@polygons[[12]],baltimore@polygons[[12]],baltimore@polygons[[12]],baltimore@polygons[[12]],baltimore@polygons[[12]],baltimore@polygons[[12]],baltimore@polygons[[12]], baltimore@polygons[[13]],baltimore@polygons[[13]],baltimore@polygons[[13]],baltimore@polygons[[13]],baltimore@polygons[[13]],baltimore@polygons[[13]],baltimore@polygons[[13]], baltimore@polygons[[14]],baltimore@polygons[[14]],baltimore@polygons[[14]],baltimore@polygons[[14]],baltimore@polygons[[14]],baltimore@polygons[[14]],baltimore@polygons[[14]], baltimore@polygons[[15]],baltimore@polygons[[15]],baltimore@polygons[[15]],baltimore@polygons[[15]],baltimore@polygons[[15]],baltimore@polygons[[15]],baltimore@polygons[[15]], baltimore@polygons[[16]],baltimore@polygons[[16]],baltimore@polygons[[16]],baltimore@polygons[[16]],baltimore@polygons[[16]],baltimore@polygons[[16]],baltimore@polygons[[16]], baltimore@polygons[[17]],baltimore@polygons[[17]],baltimore@polygons[[17]],baltimore@polygons[[17]],baltimore@polygons[[17]],baltimore@polygons[[17]],baltimore@polygons[[17]], baltimore@polygons[[18]],baltimore@polygons[[18]],baltimore@polygons[[18]],baltimore@polygons[[18]],baltimore@polygons[[18]],baltimore@polygons[[18]],baltimore@polygons[[18]], baltimore@polygons[[19]],baltimore@polygons[[19]],baltimore@polygons[[19]],baltimore@polygons[[19]],baltimore@polygons[[19]],baltimore@polygons[[19]],baltimore@polygons[[19]], baltimore@polygons[[20]],baltimore@polygons[[20]],baltimore@polygons[[20]],baltimore@polygons[[20]],baltimore@polygons[[20]],baltimore@polygons[[20]],baltimore@polygons[[20]], baltimore@polygons[[21]],baltimore@polygons[[21]],baltimore@polygons[[21]],baltimore@polygons[[21]],baltimore@polygons[[21]],baltimore@polygons[[21]],baltimore@polygons[[21]], baltimore@polygons[[22]],baltimore@polygons[[22]],baltimore@polygons[[22]],baltimore@polygons[[22]],baltimore@polygons[[22]],baltimore@polygons[[22]],baltimore@polygons[[22]], baltimore@polygons[[23]],baltimore@polygons[[23]],baltimore@polygons[[23]],baltimore@polygons[[23]],baltimore@polygons[[23]],baltimore@polygons[[23]],baltimore@polygons[[23]], baltimore@polygons[[24]],baltimore@polygons[[24]],baltimore@polygons[[24]],baltimore@polygons[[24]],baltimore@polygons[[24]],baltimore@polygons[[24]],baltimore@polygons[[24]], baltimore@polygons[[25]],baltimore@polygons[[25]],baltimore@polygons[[25]],baltimore@polygons[[25]],baltimore@polygons[[25]],baltimore@polygons[[25]],baltimore@polygons[[25]], baltimore@polygons[[26]],baltimore@polygons[[26]],baltimore@polygons[[26]],baltimore@polygons[[26]],baltimore@polygons[[26]],baltimore@polygons[[26]],baltimore@polygons[[26]], baltimore@polygons[[27]],baltimore@polygons[[27]],baltimore@polygons[[27]],baltimore@polygons[[27]],baltimore@polygons[[27]],baltimore@polygons[[27]],baltimore@polygons[[27]], baltimore@polygons[[28]],baltimore@polygons[[28]],baltimore@polygons[[28]],baltimore@polygons[[28]],baltimore@polygons[[28]],baltimore@polygons[[28]],baltimore@polygons[[28]], baltimore@polygons[[29]],baltimore@polygons[[29]],baltimore@polygons[[29]],baltimore@polygons[[29]],baltimore@polygons[[29]],baltimore@polygons[[29]],baltimore@polygons[[29]], baltimore@polygons[[30]],baltimore@polygons[[30]],baltimore@polygons[[30]],baltimore@polygons[[30]],baltimore@polygons[[30]],baltimore@polygons[[30]],baltimore@polygons[[30]], baltimore@polygons[[31]],baltimore@polygons[[31]],baltimore@polygons[[31]],baltimore@polygons[[31]],baltimore@polygons[[31]],baltimore@polygons[[31]],baltimore@polygons[[31]], baltimore@polygons[[32]],baltimore@polygons[[32]],baltimore@polygons[[32]],baltimore@polygons[[32]],baltimore@polygons[[32]],baltimore@polygons[[32]],baltimore@polygons[[32]], baltimore@polygons[[33]],baltimore@polygons[[33]],baltimore@polygons[[33]],baltimore@polygons[[33]],baltimore@polygons[[33]],baltimore@polygons[[33]],baltimore@polygons[[33]], baltimore@polygons[[34]],baltimore@polygons[[34]],baltimore@polygons[[34]],baltimore@polygons[[34]],baltimore@polygons[[34]],baltimore@polygons[[34]],baltimore@polygons[[34]], baltimore@polygons[[35]],baltimore@polygons[[35]],baltimore@polygons[[35]],baltimore@polygons[[35]],baltimore@polygons[[35]],baltimore@polygons[[35]],baltimore@polygons[[35]], baltimore@polygons[[36]],baltimore@polygons[[36]],baltimore@polygons[[36]],baltimore@polygons[[36]],baltimore@polygons[[36]],baltimore@polygons[[36]],baltimore@polygons[[36]], baltimore@polygons[[37]],baltimore@polygons[[37]],baltimore@polygons[[37]],baltimore@polygons[[37]],baltimore@polygons[[37]],baltimore@polygons[[37]],baltimore@polygons[[37]], baltimore@polygons[[38]],baltimore@polygons[[38]],baltimore@polygons[[38]],baltimore@polygons[[38]],baltimore@polygons[[38]],baltimore@polygons[[38]],baltimore@polygons[[38]], baltimore@polygons[[39]],baltimore@polygons[[39]],baltimore@polygons[[39]],baltimore@polygons[[39]],baltimore@polygons[[39]],baltimore@polygons[[39]],baltimore@polygons[[39]], baltimore@polygons[[40]],baltimore@polygons[[40]],baltimore@polygons[[40]],baltimore@polygons[[40]],baltimore@polygons[[40]],baltimore@polygons[[40]],baltimore@polygons[[40]], baltimore@polygons[[41]],baltimore@polygons[[41]],baltimore@polygons[[41]],baltimore@polygons[[41]],baltimore@polygons[[41]],baltimore@polygons[[41]],baltimore@polygons[[41]], baltimore@polygons[[42]],baltimore@polygons[[42]],baltimore@polygons[[42]],baltimore@polygons[[42]],baltimore@polygons[[42]],baltimore@polygons[[42]],baltimore@polygons[[42]], baltimore@polygons[[43]],baltimore@polygons[[43]],baltimore@polygons[[43]],baltimore@polygons[[43]],baltimore@polygons[[43]],baltimore@polygons[[43]],baltimore@polygons[[43]], baltimore@polygons[[44]],baltimore@polygons[[44]],baltimore@polygons[[44]],baltimore@polygons[[44]],baltimore@polygons[[44]],baltimore@polygons[[44]],baltimore@polygons[[44]], baltimore@polygons[[45]],baltimore@polygons[[45]],baltimore@polygons[[45]],baltimore@polygons[[45]],baltimore@polygons[[45]],baltimore@polygons[[45]],baltimore@polygons[[45]], baltimore@polygons[[46]],baltimore@polygons[[46]],baltimore@polygons[[46]],baltimore@polygons[[46]],baltimore@polygons[[46]],baltimore@polygons[[46]],baltimore@polygons[[46]], baltimore@polygons[[47]],baltimore@polygons[[47]],baltimore@polygons[[47]],baltimore@polygons[[47]],baltimore@polygons[[47]],baltimore@polygons[[47]],baltimore@polygons[[47]], baltimore@polygons[[48]],baltimore@polygons[[48]],baltimore@polygons[[48]],baltimore@polygons[[48]],baltimore@polygons[[48]],baltimore@polygons[[48]],baltimore@polygons[[48]], baltimore@polygons[[49]],baltimore@polygons[[49]],baltimore@polygons[[49]],baltimore@polygons[[49]],baltimore@polygons[[49]],baltimore@polygons[[49]],baltimore@polygons[[49]], baltimore@polygons[[50]],baltimore@polygons[[50]],baltimore@polygons[[50]],baltimore@polygons[[50]],baltimore@polygons[[50]],baltimore@polygons[[50]],baltimore@polygons[[50]], baltimore@polygons[[51]],baltimore@polygons[[51]],baltimore@polygons[[51]],baltimore@polygons[[51]],baltimore@polygons[[51]],baltimore@polygons[[51]],baltimore@polygons[[51]], baltimore@polygons[[52]],baltimore@polygons[[52]],baltimore@polygons[[52]],baltimore@polygons[[52]],baltimore@polygons[[52]],baltimore@polygons[[52]],baltimore@polygons[[52]], baltimore@polygons[[53]],baltimore@polygons[[53]],baltimore@polygons[[53]],baltimore@polygons[[53]],baltimore@polygons[[53]],baltimore@polygons[[53]],baltimore@polygons[[53]], baltimore@polygons[[54]],baltimore@polygons[[54]],baltimore@polygons[[54]],baltimore@polygons[[54]],baltimore@polygons[[54]],baltimore@polygons[[54]],baltimore@polygons[[54]], baltimore@polygons[[55]],baltimore@polygons[[55]],baltimore@polygons[[55]],baltimore@polygons[[55]],baltimore@polygons[[55]],baltimore@polygons[[55]],baltimore@polygons[[55]], baltimore@polygons[[56]],baltimore@polygons[[56]],baltimore@polygons[[56]],baltimore@polygons[[56]],baltimore@polygons[[56]],baltimore@polygons[[56]],baltimore@polygons[[56]])) |
| baltimore_alias <- baltimore |
| baltimore_alias@polygons <- anim_tibble$geometry |
| baltimore_alias@data$community %in% anim_tibble$Community #Again, we ensure that we have a perfect match |
| baltimore_alias@data <-left_join(baltimore_alias@data,anim_tibble,by = c(‘community’ = ‘Community’)) |
| bbox <- baltimore@bbox pb <- c(0,25,50,75,100,125,150,175,200,225,250) |
| animated_crime_map <- tm_shape(baltimore_alias,bbox = bbox, projection = crs.geo1) + tm_polygons(“CrimeRate”,breaks=pb) + tm_facets(free.scales.fill = F,along = “Year”)+tm_shape(baltimore)+tm_borders() |
| tmap_animation(animated_crime_map, delay=100) |
| #maybe write.gif ``` |
| ### 3.4.1 Calculation of violent crime and property crime evolution |
| We can make the exact same computation to calculate violent crime and property crime evolution. |
| ```r |
| Violent_Crime_in_2021 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2021-01-01”) & CrimeDateTime <= as.Date(“2021-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2020 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2020-01-01”) & CrimeDateTime <= as.Date(“2020-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2019 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2019-01-01”) & CrimeDateTime <= as.Date(“2019-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2018 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2018-01-01”) & CrimeDateTime <= as.Date(“2018-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2017 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2017-01-01”) & CrimeDateTime <= as.Date(“2017-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2016 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2016-01-01”) & CrimeDateTime <= as.Date(“2016-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2015 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2015-01-01”) & CrimeDateTime <= as.Date(“2015-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| Violent_Crime_in_2014 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2014-01-01”) & CrimeDateTime <= as.Date(“2014-12-31”)) %>% filter(VIO_PROP_CFS==“VIOLENT”) |
| ViolentCrimePerCapitaPerArea2021 <- Violent_Crime_in_2021 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency21=n()) |
| ViolentCrimePerCapitaPerArea2021 <- mutate(ViolentCrimePerCapitaPerArea2021,ViolentCrimePer1000inhabitants21=((ViolentCrimePerCapitaPerArea2021\(ViolentCrimeFrequency21/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2021 <- rbind(ViolentCrimePerCapitaPerArea2021,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2020 <- Violent_Crime_in_2020 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency20=n()) |
| ViolentCrimePerCapitaPerArea2020 <- mutate(ViolentCrimePerCapitaPerArea2020,ViolentCrimePer1000inhabitants20=((ViolentCrimePerCapitaPerArea2020\(ViolentCrimeFrequency20/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2020 <- rbind(ViolentCrimePerCapitaPerArea2020,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2019 <- Violent_Crime_in_2019 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency19=n()) |
| ViolentCrimePerCapitaPerArea2019 <- mutate(ViolentCrimePerCapitaPerArea2019,ViolentCrimePer1000inhabitants19=((ViolentCrimePerCapitaPerArea2019\(ViolentCrimeFrequency19/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2019 <- rbind(ViolentCrimePerCapitaPerArea2019,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2018 <- Violent_Crime_in_2018 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency18=n()) |
| ViolentCrimePerCapitaPerArea2018 <- mutate(ViolentCrimePerCapitaPerArea2018,ViolentCrimePer1000inhabitants18=((ViolentCrimePerCapitaPerArea2018\(ViolentCrimeFrequency18/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2018 <- rbind(ViolentCrimePerCapitaPerArea2018,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2017 <- Violent_Crime_in_2017 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency17=n()) |
| ViolentCrimePerCapitaPerArea2017 <- mutate(ViolentCrimePerCapitaPerArea2017,ViolentCrimePer1000inhabitants17=((ViolentCrimePerCapitaPerArea2017\(ViolentCrimeFrequency17/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2017 <- rbind(ViolentCrimePerCapitaPerArea2017,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2016 <- Violent_Crime_in_2016 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency16=n()) |
| ViolentCrimePerCapitaPerArea2016 <- mutate(ViolentCrimePerCapitaPerArea2016,ViolentCrimePer1000inhabitants16=((ViolentCrimePerCapitaPerArea2016\(ViolentCrimeFrequency16/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2016 <- rbind(ViolentCrimePerCapitaPerArea2016,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2015 <- Violent_Crime_in_2015 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency15=n()) |
| ViolentCrimePerCapitaPerArea2015 <- mutate(ViolentCrimePerCapitaPerArea2015,ViolentCrimePer1000inhabitants15=((ViolentCrimePerCapitaPerArea2015\(ViolentCrimeFrequency15/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2015 <- rbind(ViolentCrimePerCapitaPerArea2015,list(“Unassigned – Jail”,0,0)) |
| ViolentCrimePerCapitaPerArea2014 <- Violent_Crime_in_2014 %>% group_by(Community) %>% summarize(ViolentCrimeFrequency14=n()) |
| ViolentCrimePerCapitaPerArea2014 <- mutate(ViolentCrimePerCapitaPerArea2014,ViolentCrimePer1000inhabitants14=((ViolentCrimePerCapitaPerArea2014\(ViolentCrimeFrequency14/population_data\)tpop20)*1000)) |
| ViolentCrimePerCapitaPerArea2014 <- rbind(ViolentCrimePerCapitaPerArea2014,list(“Unassigned – Jail”,0,0)) |
| Violent_crime_evolution <- ViolentCrimePerCapitaPerArea2021 %>% left_join(ViolentCrimePerCapitaPerArea2020,by=“Community”) %>% left_join(ViolentCrimePerCapitaPerArea2019,by=“Community”) %>% left_join(ViolentCrimePerCapitaPerArea2018,by=“Community”) %>% left_join(ViolentCrimePerCapitaPerArea2017,by=“Community”) %>% left_join(ViolentCrimePerCapitaPerArea2016,by=“Community”) %>% left_join(ViolentCrimePerCapitaPerArea2015,by=“Community”) %>% left_join(ViolentCrimePerCapitaPerArea2014,by=“Community”) |
| Community_data <- Community_data %>% left_join(Violent_crime_evolution,by=“Community”) |
| Violent_Crime_Yearly_evolution_map <- crime_data_with_areas %>% filter(VIO_PROP_CFS==“VIOLENT”) %>% count(year=floor_date(CrimeDateTime,“year”)) %>% ggplot(aes(year,n))+geom_line()+ scale_x_date(limits = c(as.Date(“2014-01-01”), as.Date(“2020-12-31”))) + labs(title = “Overall, violent crime seems to have decreased for the 2017 to 2020 period”,x=“Year”,y=“Violent crime occurences”) |
| Violent_Crime_Yearly_evolution_map |
| #______________ |
| Property_Crime_in_2021 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2021-01-01”) & CrimeDateTime <= as.Date(“2021-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2020 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2020-01-01”) & CrimeDateTime <= as.Date(“2020-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2019 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2019-01-01”) & CrimeDateTime <= as.Date(“2019-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2018 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2018-01-01”) & CrimeDateTime <= as.Date(“2018-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2017 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2017-01-01”) & CrimeDateTime <= as.Date(“2017-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2016 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2016-01-01”) & CrimeDateTime <= as.Date(“2016-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2015 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2015-01-01”) & CrimeDateTime <= as.Date(“2015-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| Property_Crime_in_2014 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2014-01-01”) & CrimeDateTime <= as.Date(“2014-12-31”)) %>% filter(VIO_PROP_CFS==“PROPERTY”) |
| PropertyCrimePerCapitaPerArea2021 <- Property_Crime_in_2021 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency21=n()) |
| PropertyCrimePerCapitaPerArea2021 <- mutate(PropertyCrimePerCapitaPerArea2021,PropertyCrimePer1000inhabitants21=((PropertyCrimePerCapitaPerArea2021\(PropertyCrimeFrequency21/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2021 <- rbind(PropertyCrimePerCapitaPerArea2021,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2020 <- Property_Crime_in_2020 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency20=n()) |
| PropertyCrimePerCapitaPerArea2020 <- mutate(PropertyCrimePerCapitaPerArea2020,PropertyCrimePer1000inhabitants20=((PropertyCrimePerCapitaPerArea2020\(PropertyCrimeFrequency20/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2020 <- rbind(PropertyCrimePerCapitaPerArea2020,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2019 <- Property_Crime_in_2019 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency19=n()) |
| PropertyCrimePerCapitaPerArea2019 <- mutate(PropertyCrimePerCapitaPerArea2019,PropertyCrimePer1000inhabitants19=((PropertyCrimePerCapitaPerArea2019\(PropertyCrimeFrequency19/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2019 <- rbind(PropertyCrimePerCapitaPerArea2019,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2018 <- Property_Crime_in_2018 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency18=n()) |
| PropertyCrimePerCapitaPerArea2018 <- mutate(PropertyCrimePerCapitaPerArea2018,PropertyCrimePer1000inhabitants18=((PropertyCrimePerCapitaPerArea2018\(PropertyCrimeFrequency18/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2018 <- rbind(PropertyCrimePerCapitaPerArea2018,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2017 <- Property_Crime_in_2017 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency17=n()) |
| PropertyCrimePerCapitaPerArea2017 <- mutate(PropertyCrimePerCapitaPerArea2017,PropertyCrimePer1000inhabitants17=((PropertyCrimePerCapitaPerArea2017\(PropertyCrimeFrequency17/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2017 <- rbind(PropertyCrimePerCapitaPerArea2017,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2016 <- Property_Crime_in_2016 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency16=n()) |
| PropertyCrimePerCapitaPerArea2016 <- mutate(PropertyCrimePerCapitaPerArea2016,PropertyCrimePer1000inhabitants16=((PropertyCrimePerCapitaPerArea2016\(PropertyCrimeFrequency16/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2016 <- rbind(PropertyCrimePerCapitaPerArea2016,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2015 <- Property_Crime_in_2015 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency15=n()) |
| PropertyCrimePerCapitaPerArea2015 <- mutate(PropertyCrimePerCapitaPerArea2015,PropertyCrimePer1000inhabitants15=((PropertyCrimePerCapitaPerArea2015\(PropertyCrimeFrequency15/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2015 <- rbind(PropertyCrimePerCapitaPerArea2015,list(“Unassigned – Jail”,0,0)) |
| PropertyCrimePerCapitaPerArea2014 <- Property_Crime_in_2014 %>% group_by(Community) %>% summarize(PropertyCrimeFrequency14=n()) |
| PropertyCrimePerCapitaPerArea2014 <- mutate(PropertyCrimePerCapitaPerArea2014,PropertyCrimePer1000inhabitants14=((PropertyCrimePerCapitaPerArea2014\(PropertyCrimeFrequency14/population_data\)tpop20)*1000)) |
| PropertyCrimePerCapitaPerArea2014 <- rbind(PropertyCrimePerCapitaPerArea2014,list(“Unassigned – Jail”,0,0)) |
| Property_crime_evolution <- PropertyCrimePerCapitaPerArea2021 %>% left_join(PropertyCrimePerCapitaPerArea2020,by=“Community”) %>% left_join(PropertyCrimePerCapitaPerArea2019,by=“Community”) %>% left_join(PropertyCrimePerCapitaPerArea2018,by=“Community”) %>% left_join(PropertyCrimePerCapitaPerArea2017,by=“Community”) %>% left_join(PropertyCrimePerCapitaPerArea2016,by=“Community”) %>% left_join(PropertyCrimePerCapitaPerArea2015,by=“Community”) %>% left_join(PropertyCrimePerCapitaPerArea2014,by=“Community”) |
| Community_data <- Community_data %>% left_join(Property_crime_evolution,by=“Community”) |
| Property_Crime_Yearly_evolution_map <- crime_data_with_areas %>% filter(VIO_PROP_CFS==“PROPERTY”) %>% count(year=floor_date(CrimeDateTime,“year”)) %>% ggplot(aes(year,n))+geom_line()+ scale_x_date(limits = c(as.Date(“2014-01-01”), as.Date(“2020-12-31”))) + labs(title = “Overall, property crime seems to have decreased for the 2017 to 2020 period”,x=“Year”,y=“Property crime occurences”) |
| Property_Crime_Yearly_evolution_map ``` |
 #### 3.4.2 Calculation of felony and misdemeanor evolution |
| We can make the exact same computation to calculate felony and misdemeanor evolution. |
| ```r |
| Felony_in_2021 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2021-01-01”) & CrimeDateTime <= as.Date(“2021-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2020 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2020-01-01”) & CrimeDateTime <= as.Date(“2020-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2019 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2019-01-01”) & CrimeDateTime <= as.Date(“2019-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2018 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2018-01-01”) & CrimeDateTime <= as.Date(“2018-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2017 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2017-01-01”) & CrimeDateTime <= as.Date(“2017-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2016 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2016-01-01”) & CrimeDateTime <= as.Date(“2016-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2015 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2015-01-01”) & CrimeDateTime <= as.Date(“2015-12-31”)) %>% filter(Category==“Felony”) |
| Felony_in_2014 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2014-01-01”) & CrimeDateTime <= as.Date(“2014-12-31”)) %>% filter(Category==“Felony”) |
| FelonyPerCapitaPerArea2021 <- Felony_in_2021 %>% group_by(Community) %>% summarize(FelonyFrequency21=n()) |
| FelonyPerCapitaPerArea2021 <- mutate(FelonyPerCapitaPerArea2021,FelonyPer1000inhabitants21=((FelonyPerCapitaPerArea2021\(FelonyFrequency21/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2021 <- rbind(FelonyPerCapitaPerArea2021,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2020 <- Felony_in_2020 %>% group_by(Community) %>% summarize(FelonyFrequency20=n()) |
| FelonyPerCapitaPerArea2020 <- mutate(FelonyPerCapitaPerArea2020,FelonyPer1000inhabitants20=((FelonyPerCapitaPerArea2020\(FelonyFrequency20/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2020 <- rbind(FelonyPerCapitaPerArea2020,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2019 <- Felony_in_2019 %>% group_by(Community) %>% summarize(FelonyFrequency19=n()) |
| FelonyPerCapitaPerArea2019 <- mutate(FelonyPerCapitaPerArea2019,FelonyPer1000inhabitants19=((FelonyPerCapitaPerArea2019\(FelonyFrequency19/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2019 <- rbind(FelonyPerCapitaPerArea2019,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2018 <- Felony_in_2018 %>% group_by(Community) %>% summarize(FelonyFrequency18=n()) |
| FelonyPerCapitaPerArea2018 <- mutate(FelonyPerCapitaPerArea2018,FelonyPer1000inhabitants18=((FelonyPerCapitaPerArea2018\(FelonyFrequency18/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2018 <- rbind(FelonyPerCapitaPerArea2018,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2017 <- Felony_in_2017 %>% group_by(Community) %>% summarize(FelonyFrequency17=n()) |
| FelonyPerCapitaPerArea2017 <- mutate(FelonyPerCapitaPerArea2017,FelonyPer1000inhabitants17=((FelonyPerCapitaPerArea2017\(FelonyFrequency17/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2017 <- rbind(FelonyPerCapitaPerArea2017,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2016 <- Felony_in_2016 %>% group_by(Community) %>% summarize(FelonyFrequency16=n()) |
| FelonyPerCapitaPerArea2016 <- mutate(FelonyPerCapitaPerArea2016,FelonyPer1000inhabitants16=((FelonyPerCapitaPerArea2016\(FelonyFrequency16/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2016 <- rbind(FelonyPerCapitaPerArea2016,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2015 <- Felony_in_2015 %>% group_by(Community) %>% summarize(FelonyFrequency15=n()) |
| FelonyPerCapitaPerArea2015 <- mutate(FelonyPerCapitaPerArea2015,FelonyPer1000inhabitants15=((FelonyPerCapitaPerArea2015\(FelonyFrequency15/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2015 <- rbind(FelonyPerCapitaPerArea2015,list(“Unassigned – Jail”,0,0)) |
| FelonyPerCapitaPerArea2014 <- Felony_in_2014 %>% group_by(Community) %>% summarize(FelonyFrequency14=n()) |
| FelonyPerCapitaPerArea2014 <- mutate(FelonyPerCapitaPerArea2014,FelonyPer1000inhabitants14=((FelonyPerCapitaPerArea2014\(FelonyFrequency14/population_data\)tpop20)*1000)) |
| FelonyPerCapitaPerArea2014 <- rbind(FelonyPerCapitaPerArea2014,list(“Unassigned – Jail”,0,0)) |
| Felony_evolution <- FelonyPerCapitaPerArea2021 %>% left_join(FelonyPerCapitaPerArea2020,by=“Community”) %>% left_join(FelonyPerCapitaPerArea2019,by=“Community”) %>% left_join(FelonyPerCapitaPerArea2018,by=“Community”) %>% left_join(FelonyPerCapitaPerArea2017,by=“Community”) %>% left_join(FelonyPerCapitaPerArea2016,by=“Community”) %>% left_join(FelonyPerCapitaPerArea2015,by=“Community”) %>% left_join(FelonyPerCapitaPerArea2014,by=“Community”) |
| Community_data <- Community_data %>% left_join(Felony_evolution,by=“Community”) |
| Felony_Yearly_evolution_map <- crime_data_with_areas %>% filter(Category==“Felony”) %>% count(year=floor_date(CrimeDateTime,“year”)) %>% ggplot(aes(year,n))+geom_line()+ scale_x_date(limits = c(as.Date(“2014-01-01”), as.Date(“2020-12-31”))) + labs(title = “In Baltimore, Felony started to decrease as from 2017”,x=“Year”,y=“Felony occurences”) |
| Felony_Yearly_evolution_map |
| #___________ |
| Misdemeanor_in_2021 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2021-01-01”) & CrimeDateTime <= as.Date(“2021-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2020 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2020-01-01”) & CrimeDateTime <= as.Date(“2020-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2019 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2019-01-01”) & CrimeDateTime <= as.Date(“2019-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2018 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2018-01-01”) & CrimeDateTime <= as.Date(“2018-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2017 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2017-01-01”) & CrimeDateTime <= as.Date(“2017-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2016 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2016-01-01”) & CrimeDateTime <= as.Date(“2016-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2015 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2015-01-01”) & CrimeDateTime <= as.Date(“2015-12-31”)) %>% filter(Category==“Misdemeanor”) |
| Misdemeanor_in_2014 <- crime_data_with_areas %>% filter(CrimeDateTime >= as.Date(“2014-01-01”) & CrimeDateTime <= as.Date(“2014-12-31”)) %>% filter(Category==“Misdemeanor”) |
| MisdemeanorPerCapitaPerArea2021 <- Misdemeanor_in_2021 %>% group_by(Community) %>% summarize(MisdemeanorFrequency21=n()) |
| MisdemeanorPerCapitaPerArea2021 <- mutate(MisdemeanorPerCapitaPerArea2021,MisdemeanorPer1000inhabitants21=((MisdemeanorPerCapitaPerArea2021\(MisdemeanorFrequency21/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2021 <- rbind(MisdemeanorPerCapitaPerArea2021,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2020 <- Misdemeanor_in_2020 %>% group_by(Community) %>% summarize(MisdemeanorFrequency20=n()) |
| MisdemeanorPerCapitaPerArea2020 <- mutate(MisdemeanorPerCapitaPerArea2020,MisdemeanorPer1000inhabitants20=((MisdemeanorPerCapitaPerArea2020\(MisdemeanorFrequency20/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2020 <- rbind(MisdemeanorPerCapitaPerArea2020,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2019 <- Misdemeanor_in_2019 %>% group_by(Community) %>% summarize(MisdemeanorFrequency19=n()) |
| MisdemeanorPerCapitaPerArea2019 <- mutate(MisdemeanorPerCapitaPerArea2019,MisdemeanorPer1000inhabitants19=((MisdemeanorPerCapitaPerArea2019\(MisdemeanorFrequency19/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2019 <- rbind(MisdemeanorPerCapitaPerArea2019,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2018 <- Misdemeanor_in_2018 %>% group_by(Community) %>% summarize(MisdemeanorFrequency18=n()) |
| MisdemeanorPerCapitaPerArea2018 <- mutate(MisdemeanorPerCapitaPerArea2018,MisdemeanorPer1000inhabitants18=((MisdemeanorPerCapitaPerArea2018\(MisdemeanorFrequency18/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2018 <- rbind(MisdemeanorPerCapitaPerArea2018,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2017 <- Misdemeanor_in_2017 %>% group_by(Community) %>% summarize(MisdemeanorFrequency17=n()) |
| MisdemeanorPerCapitaPerArea2017 <- mutate(MisdemeanorPerCapitaPerArea2017,MisdemeanorPer1000inhabitants17=((MisdemeanorPerCapitaPerArea2017\(MisdemeanorFrequency17/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2017 <- rbind(MisdemeanorPerCapitaPerArea2017,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2016 <- Misdemeanor_in_2016 %>% group_by(Community) %>% summarize(MisdemeanorFrequency16=n()) |
| MisdemeanorPerCapitaPerArea2016 <- mutate(MisdemeanorPerCapitaPerArea2016,MisdemeanorPer1000inhabitants16=((MisdemeanorPerCapitaPerArea2016\(MisdemeanorFrequency16/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2016 <- rbind(MisdemeanorPerCapitaPerArea2016,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2015 <- Misdemeanor_in_2015 %>% group_by(Community) %>% summarize(MisdemeanorFrequency15=n()) |
| MisdemeanorPerCapitaPerArea2015 <- mutate(MisdemeanorPerCapitaPerArea2015,MisdemeanorPer1000inhabitants15=((MisdemeanorPerCapitaPerArea2015\(MisdemeanorFrequency15/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2015 <- rbind(MisdemeanorPerCapitaPerArea2015,list(“Unassigned – Jail”,0,0)) |
| MisdemeanorPerCapitaPerArea2014 <- Misdemeanor_in_2014 %>% group_by(Community) %>% summarize(MisdemeanorFrequency14=n()) |
| MisdemeanorPerCapitaPerArea2014 <- mutate(MisdemeanorPerCapitaPerArea2014,MisdemeanorPer1000inhabitants14=((MisdemeanorPerCapitaPerArea2014\(MisdemeanorFrequency14/population_data\)tpop20)*1000)) |
| MisdemeanorPerCapitaPerArea2014 <- rbind(MisdemeanorPerCapitaPerArea2014,list(“Unassigned – Jail”,0,0)) |
| Misdemeanor_evolution <- MisdemeanorPerCapitaPerArea2021 %>% left_join(MisdemeanorPerCapitaPerArea2020,by=“Community”) %>% left_join(MisdemeanorPerCapitaPerArea2019,by=“Community”) %>% left_join(MisdemeanorPerCapitaPerArea2018,by=“Community”) %>% left_join(MisdemeanorPerCapitaPerArea2017,by=“Community”) %>% left_join(MisdemeanorPerCapitaPerArea2016,by=“Community”) %>% left_join(MisdemeanorPerCapitaPerArea2015,by=“Community”) %>% left_join(MisdemeanorPerCapitaPerArea2014,by=“Community”) |
| Community_data <- Community_data %>% left_join(Misdemeanor_evolution,by=“Community”) |
| Misdemeanor_Yearly_evolution_map <- crime_data_with_areas %>% filter(Category==“Misdemeanor”) %>% count(year=floor_date(CrimeDateTime,“year”)) %>% ggplot(aes(year,n))+geom_line()+ scale_x_date(limits = c(as.Date(“2014-01-01”), as.Date(“2020-12-31”))) + labs(title = “In Baltimore, Misdemeanor started to decrease as from 2017”,x=“Year”,y=“Misdemeanor occurences”) |
| Misdemeanor_Yearly_evolution_map ``` |
  |
| ### 3.5 Comparison of crimes and wealth |
| We want to investigate whether or not wealthier areas are more or less impacted by crime. To do so, we once more compute a simple linear regression. We again see that the \(R^2\) is quite poor. |
#> #> <table style="text-align:center"><caption><strong>CrimePer1000Inhabitants vs Poverty</strong></caption> #> <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td><em>Dependent variable:</em></td></tr> #> <tr><td></td><td colspan="1" style="border-bottom: 1px solid black"></td></tr> #> <tr><td style="text-align:left"></td><td>CrimePer1000inhabitants</td></tr> #> <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">hhpov19</td><td>14.200<sup>***</sup></td></tr> #> <tr><td style="text-align:left"></td><td>(3.430)</td></tr> #> <tr><td style="text-align:left"></td><td></td></tr> #> <tr><td style="text-align:left">Constant</td><td>392.000<sup>***</sup></td></tr> #> <tr><td style="text-align:left"></td><td>(68.200)</td></tr> #> <tr><td style="text-align:left"></td><td></td></tr> #> <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>56</td></tr> #> <tr><td style="text-align:left">R<sup>2</sup></td><td>0.242</td></tr> #> <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.228</td></tr> #> <tr><td style="text-align:left">Residual Std. Error</td><td>288.000 (df = 54)</td></tr> #> <tr><td style="text-align:left">F Statistic</td><td>17.300<sup>***</sup> (df = 1; 54)</td></tr> #> <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr> #> </table> |
 |
| # Analysis {.tabset} |
| ### 4.1 CCTVs VS Crime - Does the presence of CCTV deter crime? |
In order to be in position to comment on the effectiveness of CCTVs on crime deterrence, one is first going to investigate the relationship between CCTV density and crime per capita. To do so, we first create a simple linear regression model. We create a new data frame called CCTV_VS_crimes (which basically is a left joint). The linear regression indicates a moderate correlation between higher CCTV density and higher crime per capita. The \(R^2\) is at 42.9%. Plotting the observations enables one to see this tendency. The blue line represents the regression line. |
| Regression Crime vs CCTVs =============================================== Dependent variable: ————————— CrimePer1000inhabitants |